export default class myCom extends HTMLElement {
  constructor() {
    super();
    let attr = this.attributes;
    this._data = {
      // 在这里定义你的属性(name、age....)，这里的属性要和你html标签中的自定义属性保持一致
      name: attr.name ? attr.name.value : '这里是姓名',
      sex: attr.sex ? attr.sex.value : '这里是性别',
      age: attr.age ? attr.age.value : '这里是年龄',
      hobby: attr.hobby ? attr.hobby.value : '这里是爱好',
      speciality: attr.speciality ? attr.speciality.value : '这里是特长',
      weight: attr.weight ? attr.weight.value : '这里是体重',
      faceScore: attr.faceScore ? attr.faceScore.value : '这里是颜值',
    }
    this.render();
  }

  render() {
    this.obj = document.createElement('div');
    this.obj.innerHTML = `
    <div class="card-box">
      <div class="card">
        <!-- 背面 -->
        <div class="back"></div>
        <!-- 正面 -->
        <div class="front">
        <!-- 最后就是这里，也要和上面你自定义的变量保持一致 -->
          <h2>${this._data.name}</h2>
          <p>性别：${this._data.sex}</p>
          <p>年龄：${this._data.age}</p>
          <p>爱好：${this._data.hobby}</p>
          <p>特长：${this._data.speciality}</p>
          <p>体重：${this._data.weight}</p>
          <p>颜值：${this._data.faceScore}</p>
        </div>
      </div>
    </div>
    `;
    this.append(this.obj);
  }

}

window.customElements.define('turn-card', myCom);

// 下面为css样式
let style = document.createElement('style');
document.body.appendChild(style);
style.innerText = `
.card-box {
  width: 100%;
  max-width: 310px;
  height: 500px;
  /* 景深 */
  perspective: 900px;
}

.card {
  height: 100%;
  /* 开启3D */
  transform-style: preserve-3d;
  position: relative;
  transition: all .8s ease;
}

.card-box:hover .card {
  transform: rotateY(180deg);
}

.card div {
  height: 100%;
  position: absolute;
  border-radius: 30px;
  box-shadow: 4px 10px 40px 0px rgb(14, 13, 13);
  background-color: #fff;
  text-align: center;
  font-family: cursive;
  backface-visibility: hidden;
}

.front,
.back {
  width: 100%;
}

/* 正面 */
.front {
  z-index: 1;
  transform: rotateY(180deg);
}

.front p{
  text-align: left;
  text-indent: 2em;
}

/* 背面 */
.back {
  background-image: linear-gradient(to top, #a8edea 0%, #fed6e3 100%);
  z-index: 2;
  transform: rotateY(0deg);
}
`